package com.lyfam.game.entity;

import com.lyfam.game.geometry.Vector2D;

public class MovingEntity extends BaseGameEntity
{
	private Vector2D velocity;
	private Vector2D heading;
	private Vector2D sideHeading;
	private float mass = 1.05f;
	private float maxSpeed = 4;
	private float maxForce = 0.05f;
	private float maxTurnRate;

	public MovingEntity(Vector2D v, float maxSpeed, float maxForce)
	{
		this.position = v;
		this.maxSpeed = maxSpeed;
		this.maxForce = maxForce;
	}
	
	public Vector2D getVelocity()
	{
		return velocity;
	}

	public void setVelocity(Vector2D velocity)
	{
		this.velocity = velocity;
	}

	public Vector2D getHeading()
	{
		return Vector2D.getNormalize(this.getVelocity());
	}

	public void setHeading(Vector2D heading)
	{
		this.heading = heading;
	}

	public Vector2D getSideHeading()
	{
		return sideHeading;
	}

	public void setSideHeading(Vector2D sideHeading)
	{
		this.sideHeading = sideHeading;
	}

	public float getMass()
	{
		return mass;
	}

	public void setMass(float mass)
	{
		this.mass = mass;
	}

	public float getMaxSpeed()
	{
		return maxSpeed;
	}

	public void setMaxSpeed(float maxSpeed)
	{
		this.maxSpeed = maxSpeed;
	}

	public float getMaxForce()
	{
		return maxForce;
	}

	public void setMaxForce(float maxForce)
	{
		this.maxForce = maxForce;
	}

	public float getMaxTurnRate()
	{
		return maxTurnRate;
	}

	public void setMaxTurnRate(float maxTurnRate)
	{
		this.maxTurnRate = maxTurnRate;
	}

	@Override
	public void update()
	{
		// TODO Auto-generated method stub
		
	}
	
	@Override
	public float getBoundary()
	{
		// TODO Auto-generated method stub
		return 0;
	}
}
